<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        function f1(n1,n2){
            console.log(this.name,n1,n2);
        }
        f1(100,200);  //1、直接调用
        var obj1={name:"apply"};
        f1.apply(obj1,[200,300]);  //2、使用apply调用，参数以数组的形式传入
        var obj2={name:"call"};
        f1.call(obj2,300,400);   //3、使用call调用，参数直接传入


        //bind，绑定并生成一个新的函数，延迟调用
        var obj3={name:"bind"};
        var f2=f1.bind(obj3,400,500);  //只绑定，生成新的函数，并没有运行
        f2();  //延迟调用
    </script>
</body>
</html>